#include <REGX52.H>

void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main()
{
     unsigned char i;
    
    while(1)
    {
        // 从左到右流动
        for(i = 0; i < 8; i++)
        {
            P2 = ~(0x01 << i);  // 取反是因为通常LED共阳连接
            delay_ms(200);
        }
        
        // 所有灯全亮
        P2 = 0x00;  // 共阳连接时，输出0点亮LED
        delay_ms(500);
        
        P2 = 0xFF;
        delay_ms(100);
        // 从右到左流动
        for(i = 0; i < 8; i++)
        {
            P2 = ~(0x80 >> i); 
            delay_ms(200);
        }

        P2 = 0x00;
        delay_ms(500);
    
        P2 = 0xFF;
        delay_ms(100);
    }

}